home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 1.2 KB | 47 lines |
- 5 PI=3.14159
- 10 REM FOURIER
- 15 PRINT;"fourier plot - k2uyh - modified for ibm pc - wa2tif":PRINT
- 20 DIM A(40), B(40), C(40), AM(100), L(25), X(25) : REM PRECISION 5
- 21 M=20
- 25 PRINT "ENTER VALUE OF PERIOD"
- 26 INPUT T
- 30 P2=2*PI: NH=10: DT=T/M
- 32 L=T/M
- 34 X=0
- 36 FOR I=0 TO 20
- 38 L(I)=L*X
- 40 X=X+1
- 42 NEXT I
- 80 PRINT "ENTER THE VOLTAGE WHICH CORRESPONDES TO DIVISION OF TIME"
- 81 FOR Z=0 TO M
- 82 PRINT "AT t= "
- 83 PRINT L(Z)
- 84 INPUT X(Z)
- 85 NEXT Z
- 90 S=0: FOR I=0 TO M: S=S+X(I): NEXT
- 100 A0=(DT/T)*(S-(X(0)+X(M))/2):PRINT "A0="A0
- 110 REM CALC AC TERMS
- 120 PRINT: PRINT " N", " A(N)", " B(N)", " C(N)"
- 130 FOR N=1 TO NH: AS=0: BS=0
- 140 FOR I=0 TO M: TI=I*DT: NW=P2*TI*N/T
- 150 AS=AS+X(I)*COS(NW): BS=BS+X(I)*SIN(NW): NEXT
- 160 A(N)=2*(DT/T)*(AS-(X(0)+X(M))/2)
- 170 B(N)=2*(DT/T)*BS: C(N)=SQR(A(N)^2+B(N)^2)
- 180 PRINT N, A(N), B(N), C(N): NEXT
- 190 REM SPECTRUM PLOT
- 200 FOR N=1 TO NH: IF CM<C(N) THEN CM=C(N)
- 210 NEXT: FOR N=1 TO NH: F=N/T: NC=10+INT(50*C(N)/CM)
- 220 PRINT F;: FOR I=10 TO NC: PRINT TAB(I); "*";: NEXT
- 230 PRINT: NEXT
- 240 REM CALC WAVEFORM
- 250 PRINT: PRINT "WAVEFORM"
- 260 FOR I=0 TO M: TI=I*DT: AM(I)=A0: W=P2*TI/T
- 270 FOR N=1 TO NH: AM(I)=AM(I)+A(N)*COS(N*W)+B(N)*SIN(N*W): NEXT
- 280 NEXT
- 290 REM PLOT WAVEFORM
- 300 FOR I=0 TO M: IF MX<AM(I) THEN MX=AM(I)
- 310 IF MN>AM(I) THEN MN=AM(I)
- 320 NEXT: FOR I=0 TO M : TI=I*DT
- 330 NA=10+INT(50*(AM(I)-MN)/(MX-MN))
- 340 PRINT TI; TAB(NA); "*": NEXT: END
-